package com.tensquare.friend.service;

import com.tensquare.friend.dao.FriendDao;
import com.tensquare.friend.dao.NoFriendDao;
import com.tensquare.friend.pojo.Friend;
import com.tensquare.friend.pojo.NoFriend;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @BelongsProject: tensquare_parent
 * @BelongsPackage: com.tensquare.friend.service
 * @Author: yang
 * @CreateTime: 2019-03-13 13:31
 * @Description: ${Description}
 */

@Service
@Transactional
public class FriendService {

    @Autowired
    private FriendDao friendDao;

    @Autowired
    private NoFriendDao noFriendDao;


    public int addFriend(String userid, String friendid) {
        //先判断 userid 到friend id 是否有数据（有，就是重复添 加返回0，没有就直接添加）
        Friend friend = friendDao.findByUseridAndFriendid(userid, friendid);
        if(friend!=null){
            return 0;
        }
        //直接添加好友，让好友表中userid 到friendid 方向的type 为0 （单向喜欢）
        friend=new Friend();
        friend.setUserid(userid);
        friend.setFriendid(friendid);
        friend.setIslike("0");
        friendDao.save(friend);
        //判断从userid 到friendid 是否有数据，如果有，把双方都改成1（双向喜欢）
        if( friendDao.findByUseridAndFriendid(friendid, userid)!=null){
             //把双方的isLike都改成1
            friendDao.UpdateIslike("1",userid,friendid);
            friendDao.UpdateIslike("1",friendid,userid);
        }
        return 1;
    }

    public int addNoFriend(String userid, String friendid) {
        //先判断是否已经是非好友
        NoFriend noFriend = noFriendDao.findByUseridAndFriendid(userid, friendid);
        if(noFriend!=null){
            return 0;
        }
        noFriend=new NoFriend();
        noFriend.setUserid(userid);
        noFriend.setFriendid(friendid);
        noFriendDao.save(noFriend);
        return 1;
    }

    public void deleteFriend(String userid, String friendid) {
         //先删除好友表中userid 到friendid 的这条数据
        friendDao.deleteFriend(userid,friendid);
        //更新从friendid 到userid的islike 为0
        friendDao.UpdateIslike("0",friendid,userid);
        //更新非好友表中添加数据
        NoFriend nofriend=new NoFriend();
        nofriend.setUserid(userid);
        nofriend.setFriendid(friendid);
        noFriendDao.save(nofriend);
    }
}
